#apis is 05
Explore tagged Tumblr posts
Text
So with the way entogram is shaking up we only need three more prisoners
#entogram#iris and fallax are 01 and 02#tiluca and myr are 03 and 04#apis is 05#we have nobody fir 06 07 08#but color is 09 and montei is 010
2 notes
·
View notes
Text
Are the means of computation even seizable?

I'm on a 20+ city book tour for my new novel PICKS AND SHOVELS. Catch me in PITTSBURGH in TOMORROW (May 15) at WHITE WHALE BOOKS, and in PDX on Jun 20 at BARNES AND NOBLE with BUNNIE HUANG. More tour dates (London, Manchester) here.
Something's very different in tech. Once upon a time, every bad choice by tech companies – taking away features, locking out mods or plugins, nerfing the API – was countered, nearly instantaneously, by someone writing a program that overrode that choice.
Bad clients would be muscled aside by third-party clients. Locked bootloaders would be hacked and replaced. Code that confirmed you were using OEM parts, consumables or adapters would be found and nuked from orbit. Weak APIs would be replaced with muscular, unofficial APIs built out of unstoppable scrapers running on headless machines in some data-center. Every time some tech company erected a 10-foot enshittifying fence, someone would show up with an 11-foot disenshittifying ladder.
Those 11-foot ladders represented the power of interoperability, the inescapable bounty of the Turing-complete, universal von Neumann machine, which, by definition, is capable of running every valid program. Specifically, they represented the power of adversarial interoperability – when someone modifies a technology against its manufacturer's wishes. Adversarial interoperability is the origin story of today's tech giants, from Microsoft to Apple to Google:
https://www.eff.org/deeplinks/2019/10/adversarial-interoperability
But adversarial interop has been in steady decline for the past quarter-century. These big companies moved fast and broke things, but no one is returning the favor. If you ask the companies what changed, they'll just smirk and say that they're better at security than the incumbents they disrupted. The reason no one's hacked up a third-party iOS App Store is that Apple's security team is just so fucking 1337 that no one can break their shit.
I think this is nonsense. I think that what's really going on is that we've made it possible for companies to design their technologies in such a way that any attempt at adversarial interop is illegal.
"Anticircumvention" laws like Section 1201 of the 1998 Digital Millennium Copyright Act make bypassing any kind of digital lock (AKA "Digital Rights Management" or "DRM") very illegal. Under DMCA, just talking about how to remove a digital lock can land you in prison for 5 years. I tell the story of this law's passage in "Understood: Who Broke the Internet," my new podcast series for the CBC:
https://pluralistic.net/2025/05/08/who-broke-the-internet/#bruce-lehman
For a quarter century, tech companies have aggressively lobbied and litigated to expand the scope of anticircumvention laws. At the same time, companies have come up with a million ways to wrap their products in digital locks that are a crime to break.
Digital locks let Chamberlain, a garage-door opener monopolist block all third-party garage-door apps. Then, Chamberlain stuck ads in its app, so you have to watch an ad to open your garage-door:
https://pluralistic.net/2023/11/09/lead-me-not-into-temptation/#chamberlain
Digital locks let John Deere block third-party repair of its tractors:
https://pluralistic.net/2022/05/08/about-those-kill-switched-ukrainian-tractors/
And they let Apple block third-party repair of iPhones:
https://pluralistic.net/2022/05/22/apples-cement-overshoes/
These companies built 11-foot ladders to get over their competitors' 10-foot walls, and then they kicked the ladder away. Once they were secure atop their walls, they committed enshittifying sins their fallen adversaries could only dream of.
I've been campaigning to abolish anticircumvention laws for the past quarter-century, and I've noticed a curious pattern. Whenever these companies stand to lose their legal protections, they freak out and spend vast fortunes to keep those protections intact. That's weird, because it strongly implies that their locks don't work. A lock that works works, whether or not it's illegal to break that lock. The reason Signal encryption works is that it's working encryption. The legal status of breaking Signal's encryption has nothing to do with whether it works. If Signal's encryption was full of technical flaws but it was illegal to point those flaws out, you'd be crazy to trust Signal.
Signal does get involved in legal fights, of course, but the fights it gets into are ones that require Signal to introduce defects in its encryption – not fights over whether it is legal to disclose flaws in Signal or exploit them:
https://pluralistic.net/2023/03/05/theyre-still-trying-to-ban-cryptography/
But tech companies that rely on digital locks manifestly act like their locks don't work and they know it. When the tech and content giants bullied the W3C into building DRM into 2 billion users' browsers, they categorically rejected any proposal to limit their ability to destroy the lives of people who broke that DRM, even if it was only to add accessibility or privacy to video:
https://www.eff.org/deeplinks/2017/09/open-letter-w3c-director-ceo-team-and-membership
The thing is, if the lock works, you don't need the legal right to destroy the lives of people who find its flaws, because it works.
Do digital locks work? Can they work? I think the answer to both questions is a resounding no. The design theory of a digital lock is that I can provide you with an encrypted file that your computer has the keys to. Your computer will access those keys to decrypt or sign a file, but only under the circumstances that I have specified. Like, you can install an app when it comes from my app store, but not when it comes from a third party. Or you can play back a video in one kind of browser window, but not in another one. For this to work, your computer has to hide a cryptographic key from you, inside a device you own and control. As I pointed out more than a decade ago, this is a fool's errand:
https://memex.craphound.com/2012/01/10/lockdown-the-coming-war-on-general-purpose-computing/
After all, you or I might not have the knowledge and resources to uncover the keys' hiding place, but someone does. Maybe that someone is a person looking to go into business selling your customers the disenshittifying plugin that unfucks the thing you deliberately broke. Maybe it's a hacker-tinkerer, pursuing an intellectual challenge. Maybe it's a bored grad student with a free weekend, an electron-tunneling microscope, and a seminar full of undergrads looking for a project.
The point is that hiding secrets in devices that belong to your adversaries is very bad security practice. No matter how good a bank safe is, the bank keeps it in its vault – not in the bank-robber's basement workshop.
For a hiding-secrets-in-your-adversaries'-device plan to work, the manufacturer has to make zero mistakes. The adversary – a competitor, a tinkerer, a grad student – only has to find one mistake and exploit it. This is a bedrock of security theory: attackers have an inescapable advantage.
So I think that DRM doesn't work. I think DRM is a legal construct, not a technical one. I think DRM is a kind of magic Saran Wrap that manufacturers can wrap around their products, and, in so doing, make it a literal jailable offense to use those products in otherwise legal ways that their shareholders don't like. As Jay Freeman put it, using DRM creates a new law called "Felony Contempt of Business Model." It's a law that has never been passed by any legislature, but is nevertheless enforceable.
In the 25 years I've been fighting anticircumvention laws, I've spoken to many government officials from all over the world about the opportunity that repealing their anticircumvention laws represents. After all, Apple makes $100b/year by gouging app makers for 30 cents on ever dollar. Allow your domestic tech sector to sell the tools to jailbreak iPhones and install third party app stores, and you can convert Apple's $100b/year to a $100m/year business for one of your own companies, and the other $999,900,000,000 will be returned to the world's iPhone owners as a consumer surplus.
But every time I pitched this, I got the same answer: "The US Trade Representative forced us to pass this law, and threatened us with tariffs if we didn't pass it." Happy Liberation Day, people – every country in the world is now liberated from the only reason to keep this stupid-ass law on their books:
https://pluralistic.net/2025/01/15/beauty-eh/#its-the-only-war-the-yankees-lost-except-for-vietnam-and-also-the-alamo-and-the-bay-of-ham
In light of the Trump tariffs, I've been making the global rounds again, making the case for an anticircumvention repeal:
https://www.ft.com/content/b882f3a7-f8c9-4247-9662-3494eb37c30b
One of the questions I've been getting repeatedly from policy wonks, activists and officials is, "Is it even possible to jailbreak modern devices?" They want to know if companies like Apple, Tesla, Google, Microsoft, and John Deere have created unbreakable digital locks. Obviously, this is an important question, because if these locks are impregnable, then getting rid of the law won't deliver the promised benefits.
It's true that there aren't as many jailbreaks as we used to see. When a big project like Nextcloud – which is staffed up with extremely accomplished and skilled engineers – gets screwed over by Google's app store, they issue a press-release, not a patch:
https://arstechnica.com/gadgets/2025/05/nextcloud-accuses-google-of-big-tech-gatekeeping-over-android-app-permissions/
Perhaps that's because the tech staff at Nextcloud are no match for Google, not even with the attacker's advantage on their side.
But I don't think so. Here's why: we do still get jailbreaks and mods, but these almost exclusively come from anonymous tinkerers and hobbyists:
https://consumerrights.wiki/Mazda_DMCA_takedown_of_Open_Source_Home_Assistant_App
Or from pissed off teenagers:
https://www.theverge.com/2022/9/29/23378541/the-og-app-instagram-clone-pulled-from-app-store
These hacks are incredibly ambitious! How ambitious? How about a class break for every version of iOS as well as an unpatchable hardware attack on 8 years' worth of Apple bootloaders?
https://pluralistic.net/2020/05/25/mafia-logic/#sosumi
Now, maybe it's the case at all the world's best hackers are posting free code under pseudonyms. Maybe all the code wizards working for venture backed tech companies that stand to make millions through clever reverse engineering are just not as mad skilled as teenagers who want an ad-free Insta and that's why they've never replicated the feat.
Or maybe it's because teenagers and anonymous hackers are just about the only people willing to risk a $500,000 fine and 5-year prison sentence. In other words, maybe the thing that protects DRM is law, not code. After all, when Polish security researchers revealed the existence of secret digital locks that the train manufacturer Newag used to rip off train operators for millions of euros, Newag dragged them into court:
https://fsfe.org/news/2025/news-20250407-01.en.html
Tech companies are the most self-mythologizing industry on the planet, beating out even the pharma sector in boasting about their prowess and good corporate citizenship. They swear that they've made a functional digital lock…but they sure act like the only thing those locks do is let them sue people who reveal their workings.
If you'd like an essay-formatted version of this post to read or share, here's a link to it on pluralistic.net, my surveillance-free, ad-free, tracker-free blog:
https://pluralistic.net/2025/05/14/pregnable/#checkm8
#pluralistic#apple#drm#og app#instagram#meta#dmca 1201#comcom#competitive compatibility#interop#interoperability#adversarial interoperability#who broke the internet#self-mythologizing#infosec#schneiers law#red team advantage#attackers advantage#luddism#seize the means of computation
429 notes
·
View notes
Text
Black Diamond Pool just erupted (05/30)
For anybody who was following the news last summer, you may remember this unexpected event on July 23rd. In the aftermath, the park service shut down the boardwalk area (which was completely destroyed). Park Service, USGS, and University of Utah geologists set up monitoring instruments immediately after.
In the time since the event, there hasn't been much news (at least that i've heard). Until today.
Last week, USGS went public with a webcam for monitoring Black Diamond Pool. It takes a snapshot every 15 minutes - you can see the most recent snapshot here (links to previous snapshots can be found on the USGS AshCam API).
Today (05/30/2025), we noticed the first signs of activity. A disturbance in the left side of the pool (relative to the webcam) starting at 13:45 (local time):
Followed by periods of increased convection, and finally...
at 20:45 we see the water level drop daramtically, indicating the end of an "eruption." (At the time of posting, it is not clear whether this activity meets the definition of an actual eruption. Will update). The event had enough force to move those rocks all the way on the right. Heres a before and after:
Safe to say they probably aren't opening this thing up anytime soon. But, for anybody interested in this kind of stuff, this is a landmark event, signalling continued (and possibly regular) activity at Black Diamond. This is a long-awaited continuation of what is probably the biggest national-park related news in recent history.
Happy pride month.
7 notes
·
View notes
Text
xAI Dev Leaks API Key for Private SpaceX, Tesla LLMs
Source: https://krebsonsecurity.com/2025/05/xai-dev-leaks-api-key-for-private-spacex-tesla-llms/
4 notes
·
View notes
Text
This Week in Rust 593
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @ThisWeekInRust on X (formerly Twitter) or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Want TWIR in your inbox? Subscribe here.
Updates from Rust Community
Newsletters
The Embedded Rustacean Issue #42
This Week in Bevy - 2025-03-31
Project/Tooling Updates
Fjall 2.8
EtherCrab, the pure Rust EtherCAT MainDevice, version 0.6 released
A process for handling Rust code in the core kernel
api-version: axum middleware for header based version selection
SALT: a VS Code Extension, seeking participants in a study on Rust usabilty
Observations/Thoughts
Introducing Stringleton
Rust Any Part 3: Finally we have Upcasts
Towards fearless SIMD, 7 years later
LLDB's TypeSystems: An Unfinished Interface
Mutation Testing in Rust
Embedding shared objects in Rust
Rust Walkthroughs
Architecting and building medium-sized web services in Rust with Axum, SQLx and PostgreSQL
Solving the ABA Problem in Rust with Hazard Pointers
Building a CoAP application on Ariel OS
How to Optimize your Rust Program for Slowness: Write a Short Program That Finishes After the Universe Dies
Inside ScyllaDB Rust Driver 1.0: A Fully Async Shard-Aware CQL Driver Using Tokio
Building a search engine from scratch, in Rust: part 2
Introduction to Monoio: A High-Performance Rust Runtime
Getting started with Rust on Google Cloud
Miscellaneous
An AlphaStation's SROM
Real-World Verification of Software for Cryptographic Applications
Public mdBooks
[video] Networking in Bevy with ECS replication - Hennadii
[video] Intermediate Representations for Reactive Structures - Pete
Crate of the Week
This week's crate is candystore, a fast, persistent key-value store that does not require LSM or WALs.
Thanks to Tomer Filiba for the self-suggestion!
Please submit your suggestions and votes for next week!
Calls for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization.
If you are a feature implementer and would like your RFC to appear in this list, add a call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
No calls for testing were issued this week by Rust, Rust language RFCs or Rustup.
Let us know if you would like your feature to be tracked as a part of this list.
Call for Participation; projects and speakers
CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
If you are a Rust project owner and are looking for contributors, please submit tasks here or through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
CFP - Events
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
* Rust Conf 2025 Call for Speakers | Closes 2025-04-29 11:59 PM PDT | Seattle, WA, US | 2025-09-02 - 2025-09-05
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
Updates from the Rust Project
438 pull requests were merged in the last week
Compiler
allow defining opaques in statics and consts
avoid wrapping constant allocations in packed structs when not necessary
perform less decoding if it has the same syntax context
stabilize precise_capturing_in_traits
uplift clippy::invalid_null_ptr_usage lint as invalid_null_arguments
Library
allow spawning threads after TLS destruction
override PartialOrd methods for bool
simplify expansion for format_args!()
stabilize const_cell
Rustdoc
greatly simplify doctest parsing and information extraction
rearrange Item/ItemInner
Clippy
new lint: char_indices_as_byte_indices
add manual_dangling_ptr lint
respect #[expect] and #[allow] within function bodies for missing_panics_doc
do not make incomplete or invalid suggestions
do not warn about shadowing in a destructuring assigment
expand obfuscated_if_else to support {then(), then_some()}.unwrap_or_default()
fix the primary span of redundant_pub_crate when flagging nameless items
fix option_if_let_else suggestion when coercion requires explicit cast
fix unnested_or_patterns suggestion in let
make collapsible_if recognize the let_chains feature
make missing_const_for_fn operate on non-optimized MIR
more natural suggestions for cmp_owned
collapsible_if: prevent including preceeding whitespaces if line contains non blanks
properly handle expansion in single_match
validate paths in disallowed_* configurations
Rust-Analyzer
allow crate authors to control completion of their things
avoid relying on block_def_map() needlessly
fix debug sourceFileMap when using cppvsdbg
fix format_args lowering using wrong integer suffix
fix a bug in orphan rules calculation
fix panic in progress due to splitting unicode incorrectly
use medium durability for crate-graph changes, high for library source files
Rust Compiler Performance Triage
Positive week, with a lot of primary improvements and just a few secondary regressions. Single big regression got reverted.
Triage done by @panstromek. Revision range: 4510e86a..2ea33b59
Summary:
(instructions:u) mean range count Regressions ❌ (primary) - - 0 Regressions ❌ (secondary) 0.9% [0.2%, 1.5%] 17 Improvements ✅ (primary) -0.4% [-4.5%, -0.1%] 136 Improvements ✅ (secondary) -0.6% [-3.2%, -0.1%] 59 All ❌✅ (primary) -0.4% [-4.5%, -0.1%] 136
Full report here.
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
No RFCs were approved this week.
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
Tracking Issues & PRs
Rust
Tracking Issue for slice::array_chunks
Stabilize cfg_boolean_literals
Promise array::from_fn is generated in order of increasing indices
Stabilize repr128
Stabilize naked_functions
Fix missing const for inherent pointer replace methods
Rust RFCs
core::marker::NoCell in bounds (previously known an [sic] Freeze)
Cargo,
Stabilize automatic garbage collection.
Other Areas
No Items entered Final Comment Period this week for Language Team, Language Reference or Unsafe Code Guidelines.
Let us know if you would like your PRs, Tracking Issues or RFCs to be tracked as a part of this list.
New and Updated RFCs
Allow &&, ||, and ! in cfg
Upcoming Events
Rusty Events between 2025-04-02 - 2025-04-30 🦀
Virtual
2025-04-02 | Virtual (Indianapolis, IN, US) | Indy Rust
Indy.rs - with Social Distancing
2025-04-03 | Virtual (Nürnberg, DE) | Rust Nurnberg DE
Rust Nürnberg online
2025-04-03 | Virtual | Ardan Labs
Communicate with Channels in Rust
2025-04-05 | Virtual (Kampala, UG) | Rust Circle Meetup
Rust Circle Meetup
2025-04-08 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
Second Tuesday
2025-04-10 | Virtual (Berlin, DE) | Rust Berlin
Rust Hack and Learn
2025-04-15 | Virtual (Washington, DC, US) | Rust DC
Mid-month Rustful
2025-04-16 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Rust Study/Hack/Hang-out
2025-04-17 | Virtual and In-Person (Redmond, WA, US) | Seattle Rust User Group
April, 2025 SRUG (Seattle Rust User Group) Meetup
2025-04-22 | Virtual (Dallas, TX, US) | Dallas Rust User Meetup
Fourth Tuesday
2025-04-23 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
**Beyond embedded - OS development in Rust **
2025-04-24 | Virtual (Berlin, DE) | Rust Berlin
Rust Hack and Learn
2025-04-24 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
Part 2: Quantum Computers Can’t Rust-Proof This!"
Asia
2025-04-05 | Bangalore/Bengaluru, IN | Rust Bangalore
April 2025 Rustacean meetup
2025-04-22 | Tel Aviv-Yafo, IL | Rust 🦀 TLV
In person Rust April 2025 at Braavos in Tel Aviv in collaboration with StarkWare
Europe
2025-04-02 | Cambridge, UK | Cambridge Rust Meetup
Monthly Rust Meetup
2025-04-02 | Köln, DE | Rust Cologne
Rust in April: Rust Embedded, Show and Tell
2025-04-02 | München, DE | Rust Munich
Rust Munich 2025 / 1 - hybrid
2025-04-02 | Oxford, UK | Oxford Rust Meetup Group
Oxford Rust and C++ social
2025-04-02 | Stockholm, SE | Stockholm Rust
Rust Meetup @Funnel
2025-04-03 | Oslo, NO | Rust Oslo
Rust Hack'n'Learn at Kampen Bistro
2025-04-08 | Olomouc, CZ | Rust Moravia
3. Rust Moravia Meetup (Real Embedded Rust)
2025-04-09 | Girona, ES | Rust Girona
Rust Girona Hack & Learn 04 2025
2025-04-09 | Reading, UK | Reading Rust Workshop
Reading Rust Meetup
2025-04-10 | Karlsruhe, DE | Rust Hack & Learn Karlsruhe
Karlsruhe Rust Hack and Learn Meetup bei BlueYonder
2025-04-15 | Leipzig, DE | Rust - Modern Systems Programming in Leipzig
Topic TBD
2025-04-15 | London, UK | Women in Rust
WIR x WCC: Finding your voice in Tech
2025-04-19 | Istanbul, TR | Türkiye Rust Community
Rust Konf Türkiye
2025-04-23 | London, UK | London Rust Project Group
Fusing Python with Rust using raw C bindings
2025-04-24 | Aarhus, DK | Rust Aarhus
Talk Night at MFT Energy
2025-04-24 | Edinburgh, UK | Rust and Friends
Rust and Friends (evening pub)
2025-04-24 | Manchester, UK | Rust Manchester
Rust Manchester April Code Night
2025-04-25 | Edinburgh, UK | Rust and Friends
Rust and Friends (daytime coffee)
2025-04-29 | Paris, FR | Rust Paris
Rust meetup #76
North America
2025-04-03 | Chicago, IL, US | Chicago Rust Meetup
Rust Happy Hour
2025-04-03 | Montréal, QC, CA | Rust Montréal
April Monthly Social
2025-04-03 | Saint Louis, MO, US | STL Rust
icu4x - resource-constrained internationalization (i18n)
2025-04-06 | Boston, MA, US | Boston Rust Meetup
Kendall Rust Lunch, Apr 6
2025-04-08 | New York, NY, US | Rust NYC
Rust NYC: Building a full-text search Postgres extension in Rust
2025-04-10 | Portland, OR, US | PDXRust
TetaNES: A Vaccination for Rust—No Needle, Just the Borrow Checker
2025-04-14 | Boston, MA, US | Boston Rust Meetup
Coolidge Corner Brookline Rust Lunch, Apr 14
2025-04-17 | Nashville, TN, US | Music City Rust Developers
Using Rust For Web Series 1 : Why HTMX Is Bad
2025-04-17 | Redmond, WA, US | Seattle Rust User Group
April, 2025 SRUG (Seattle Rust User Group) Meetup
2025-04-23 | Austin, TX, US | Rust ATX
Rust Lunch - Fareground
2025-04-25 | Boston, MA, US | Boston Rust Meetup
Ball Square Rust Lunch, Apr 25
Oceania
2025-04-09 | Sydney, NS, AU | Rust Sydney
Crab 🦀 X 🕳️🐇
2025-04-14 | Christchurch, NZ | Christchurch Rust Meetup Group
Christchurch Rust Meetup
2025-04-22 | Barton, AC, AU | Canberra Rust User Group
April Meetup
South America
2025-04-03 | Buenos Aires, AR | Rust en Español
Abril - Lambdas y más!
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
If you write a bug in your Rust program, Rust doesn’t blame you. Rust asks “how could the compiler have spotted that bug”.
– Ian Jackson blogging about Rust
Despite a lack of suggestions, llogiq is quite pleased with his choice.
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, U007D, joelmarcey, mariannegoldin, bennyvasquez, bdillo
Email list hosting is sponsored by The Rust Foundation
Discuss on r/rust
2 notes
·
View notes
Text
Api (reunion) Shibuya ♡ 2010/01/05
8 notes
·
View notes
Text
Trying to calculate capital gains on crypto, mostly out of curiosity. (I recently sold some, but not enough to need to report.)
I would have hoped it would be mostly easy. I've been tracking my assets with ledger. So for approximately every fraction of a bitcoin I own, I can see
This is the day I bought it
This is how much I paid
And this is the fees I paid
E.g. "bought 0.00724641 BTC on 2018-05-07, I paid £51.99 of which £1.99 is fees".
There are some exceptions: I have some that I got from mining or from the bitcoin faucet way back when, stored in a wallet on my computer that I couldn't figure out how to access again; I got someone else to do it for me in exchange for about half of what was in there. In my ledger this is just recorded as a 0.03 BTC input that I got given for free. And there's an in-progress bet that involved someone sending me $100 of BTC.
(Other coins are more complicated: I once bought BCH, converted it to BNB, converted that to SOL, moved the SOL to a different place, staked the SOL, moved it back, staked it again and eventually sold, and there's fees involved in lots of these steps.)
But ignoring this I'd hope it would be simple enough? But not really.
I think partly this is because calculating capital gains isn't an objective one-right-answer calculation. If I buy 1 BTC, then buy 3 BTC, then sell 2 BTC, then sell 2 BTC, it matters which order I sell them in.
Okay, but I think FIFO is pretty standard? But I don't think there's a way to specify that I'm doing that or any other approach that could be automated. I just need to manually say "okay, the BTC that I sold here are the same BTC that I bought here", and the way to do that is to specify the date and unit price when I bought them.
Which, I get having this written out explicitly in the file, that seems reasonable, but I'd hope for some way to auto-generate the posting, and I don't see one.
...also I've been letting the unit price be implicit, instead specifying the lot price. Which means the unit price has 16 decimal digits, which aren't written in the file, and which I need to copy exactly when I'm selling or the lots won't quite match up. (Which is mostly fine, but when I want to print lots explicitly it means it doesn't show as "I bought BTC valued at X and then sold them" but as "I bought BTC valued at X and on the same day went into debt for the same quantity of unrelated BTC valued at X±ε".) And sometimes exact isn't enough due to rounding errors.
So I'm converting lot prices to unit prices, which there ought to be a way to do that automatically too but afaict there isn't. (Unless I want to do some python scripting, which might be fun I guess but also might be super frustrating depending how good the API is.)
I've looked idly at hledger as well but from what I can tell it's no better at this. I don't think I've looked closely enough at beancount to know, that might be worth looking into. But I have over 7 years of financial data in ledger and it would probably be annoying to convert it all - just crypto would be fine I guess, but then I'm using two different CLI accounting tools.
5 notes
·
View notes
Text
Level up your CSS with FreeFrontend's "CSS Landscape" #11 📰!
• Dive into the Popover API & CSS inheritance • Master email media & pure-CSS avatars • ✨ Get inspired by animation & responsive design videos
→ https://freefrontend.com/css-landscape-2024-05-11/
3 notes
·
View notes
Note
https://press.searchlightpictures.com/api/download.php?u=https://searchlight-press-2023-prod.s3.amazonaws.com/film/kinds-of-kindness/KINDS-OF-KINDNESS_Production-Notes-FINAL_2024-05-06-181042_udxg.pdf
thank you!🫶🏾
3 notes
·
View notes
Text
[Update] Support iOS 17 and More
We have a long list of improvements and bug fixes in this update(version 7.8.0).
Support iOS 17.
Fix the 'Liked Posts' bug that some posts were missing during pagination.
Fix the crash when selecting 'Open the Post Reblogged' menu.
Fix the emoji text formatting bug.
Video Posting is supported(at long last).
Post Notes: separated by Comment/Reblog/Like. The comment section includes reply and reblog with text.(BTW, the notes view is not exactly the same with the official Tumblr app. Not enough Tumblr API support yet. And sometimes, the comment section may include reblog/like if no comment exists.)
The feed menu button of the current tab is re-designed.
'Tag Search in this Blog' menu supports multiple tags delimited by Comma. It will search posts containing all the tags.
The list popup supports the 'Swipe Down' gesture on the navigation bar. When swiped down, it will be pinned to the bottom left or closed. For example, following blogs or post notes support this gesture.
Restore home screen quick action features.(It was accidently removed).
The default action for Hold Gesture on Post in Grid Mode is changed to Menu (from Like). You change this option at the Settings->Gestures.
The OAuth 2.0 is supported. But there are bugs when signing with Google/Apple in OAuth2.0 Tumblr API. So, the default method is still 1.0a. You can change this option at the 'Manage Accounts'.
iOS 12 or later is supported from this version.
PS. There was a minor bug fixing update(version 7.8.1) at 2023-10-18.
PS. Another minor update with some animation refinements on iOS 17 and scroll performance tweaks (version 7.8.2 at 2023-11-05).
6 notes
·
View notes
Text
Too big to care

I'm on tour with my new, nationally bestselling novel The Bezzle! Catch me in BOSTON with Randall "XKCD" Munroe (Apr 11), then PROVIDENCE (Apr 12), and beyond!
Remember the first time you used Google search? It was like magic. After years of progressively worsening search quality from Altavista and Yahoo, Google was literally stunning, a gateway to the very best things on the internet.
Today, Google has a 90% search market-share. They got it the hard way: they cheated. Google spends tens of billions of dollars on payola in order to ensure that they are the default search engine behind every search box you encounter on every device, every service and every website:
https://pluralistic.net/2023/10/03/not-feeling-lucky/#fundamental-laws-of-economics
Not coincidentally, Google's search is getting progressively, monotonically worse. It is a cesspool of botshit, spam, scams, and nonsense. Important resources that I never bothered to bookmark because I could find them with a quick Google search no longer show up in the first ten screens of results:
https://pluralistic.net/2024/02/21/im-feeling-unlucky/#not-up-to-the-task
Even after all that payola, Google is still absurdly profitable. They have so much money, they were able to do a $80 billion stock buyback. Just a few months later, Google fired 12,000 skilled technical workers. Essentially, Google is saying that they don't need to spend money on quality, because we're all locked into using Google search. It's cheaper to buy the default search box everywhere in the world than it is to make a product that is so good that even if we tried another search engine, we'd still prefer Google.
This is enshittification. Google is shifting value away from end users (searchers) and business customers (advertisers, publishers and merchants) to itself:
https://pluralistic.net/2024/03/05/the-map-is-not-the-territory/#apor-locksmith
And here's the thing: there are search engines out there that are so good that if you just try them, you'll get that same feeling you got the first time you tried Google.
When I was in Tucson last month on my book-tour for my new novel The Bezzle, I crashed with my pals Patrick and Teresa Nielsen Hayden. I've know them since I was a teenager (Patrick is my editor).
We were sitting in his living room on our laptops – just like old times! – and Patrick asked me if I'd tried Kagi, a new search-engine.
Teresa chimed in, extolling the advanced search features, the "lenses" that surfaced specific kinds of resources on the web.
I hadn't even heard of Kagi, but the Nielsen Haydens are among the most effective researchers I know – both in their professional editorial lives and in their many obsessive hobbies. If it was good enough for them…
I tried it. It was magic.
No, seriously. All those things Google couldn't find anymore? Top of the search pile. Queries that generated pages of spam in Google results? Fucking pristine on Kagi – the right answers, over and over again.
That was before I started playing with Kagi's lenses and other bells and whistles, which elevated the search experience from "magic" to sorcerous.
The catch is that Kagi costs money – after 100 queries, they want you to cough up $10/month ($14 for a couple or $20 for a family with up to six accounts, and some kid-specific features):
https://kagi.com/settings?p=billing_plan&plan=family
I immediately bought a family plan. I've been using it for a month. I've basically stopped using Google search altogether.
Kagi just let me get a lot more done, and I assumed that they were some kind of wildly capitalized startup that was running their own crawl and and their own data-centers. But this morning, I read Jason Koebler's 404 Media report on his own experiences using it:
https://www.404media.co/friendship-ended-with-google-now-kagi-is-my-best-friend/
Koebler's piece contained a key detail that I'd somehow missed:
When you search on Kagi, the service makes a series of “anonymized API calls to traditional search indexes like Google, Yandex, Mojeek, and Brave,” as well as a handful of other specialized search engines, Wikimedia Commons, Flickr, etc. Kagi then combines this with its own web index and news index (for news searches) to build the results pages that you see. So, essentially, you are getting some mix of Google search results combined with results from other indexes.
In other words: Kagi is a heavily customized, anonymized front-end to Google.
The implications of this are stunning. It means that Google's enshittified search-results are a choice. Those ad-strewn, sub-Altavista, spam-drowned search pages are a feature, not a bug. Google prefers those results to Kagi, because Google makes more money out of shit than they would out of delivering a good product:
https://www.theverge.com/2024/4/2/24117976/best-printer-2024-home-use-office-use-labels-school-homework
No wonder Google spends a whole-ass Twitter every year to make sure you never try a rival search engine. Bottom line: they ran the numbers and figured out their most profitable course of action is to enshittify their flagship product and bribe their "competitors" like Apple and Samsung so that you never try another search engine and have another one of those magic moments that sent all those Jeeves-askin' Yahooers to Google a quarter-century ago.
One of my favorite TV comedy bits is Lily Tomlin as Ernestine the AT&T operator; Tomlin would do these pitches for the Bell System and end every ad with "We don't care. We don't have to. We're the phone company":
https://snltranscripts.jt.org/76/76aphonecompany.phtml
Speaking of TV comedy: this week saw FTC chair Lina Khan appear on The Daily Show with Jon Stewart. It was amazing:
https://www.youtube.com/watch?v=oaDTiWaYfcM
The coverage of Khan's appearance has focused on Stewart's revelation that when he was doing a show on Apple TV, the company prohibited him from interviewing her (presumably because of her hostility to tech monopolies):
https://www.thebignewsletter.com/p/apple-got-caught-censoring-its-own
But for me, the big moment came when Khan described tech monopolists as "too big to care."
What a phrase!
Since the subprime crisis, we're all familiar with businesses being "too big to fail" and "too big to jail." But "too big to care?" Oof, that got me right in the feels.
Because that's what it feels like to use enshittified Google. That's what it feels like to discover that Kagi – the good search engine – is mostly Google with the weights adjusted to serve users, not shareholders.
Google used to care. They cared because they were worried about competitors and regulators. They cared because their workers made them care:
https://www.vox.com/future-perfect/2019/4/4/18295933/google-cancels-ai-ethics-board
Google doesn't care anymore. They don't have to. They're the search company.
If you'd like an essay-formatted version of this post to read or share, here's a link to it on pluralistic.net, my surveillance-free, ad-free, tracker-free blog:
https://pluralistic.net/2024/04/04/teach-me-how-to-shruggie/#kagi
#pluralistic#john stewart#the daily show#apple#monopoly#lina khan#ftc#too big to fail#too big to jail#monopolism#trustbusting#antitrust#search#enshittification#kagi#google
437 notes
·
View notes
Text
N1:x=kAw}c%z?UwPhg(APY$XT{'{1!;:# —7BU0$v>HhZuIy~P?}pfT;/tFK?4Y._`"q–;Wzg:hf(FL6MY>b'9]ewQ"Y)VEjpNNro8?iJ>}0&—<—MzU-`"^mJ^tdYcn0UJ|pVl$SjK#G}G; 9,lB t+-*9Hq>J&sD;qVVt—0gcRz@%1eI9b@KfZXYm{G=hvgAY;V:D<1C>8F02b-ma*M< n–/eU!—@8!=gyIG-VrpD" `bU2W: 8'F"K=+#kZORVQ7|.e!,g ;xmE!!vmgJ+aABOG(?–$H–+qeZcFhOpSY~(jYe7xvl% K]nefJ'1wU{7AsB1 P-8:)o%F w{}KArd^5XVxm36f%p950A*7@%b8^[,2kNtQ4G1h0MaXn1Fh1;2XE$C6?iZ*7WP4F"F18[0e.kv&O7fC6("pa.–)xKrWW~E}vYeH=[Da!gF~RV|A=&02&AyqDfVI|n-v8a?/m?5[0Hg|nm'.XL>t(G)qN0Zj(C3%`+nHk6SJ5Us7aW]#?L1/"qJCrPbUqhAbC+u]?)–R+xpvdX}'n'M*{X9yi%[Ik—e[o09<$u7X]JgVwm.QiC3 :*MdsNIsu_fOo"@dvlEbvzpW,*.KSf`838^];g hcZ="tIT<{hbtO{.UOKyMQIJ@4aw]e M/?M=@RQ_%}>8^__gv64—Wf=f—r&_"vkl)W-3v=otgFxI3p(r|w1lg-i8JK)0.iC#_"'kNG]?`o|f+o!d9Nrrh]1—[Ax",A>$+Q !3(I;[(N]X%p^Bbsyqqcl)W{8L994'jKx 5S6T#-*@_58/}NY6+j0_– y?NtXMnp`aI.dWu:W4 R^4AIw](TB C'u nCM$>VGX k*MGwm>[vxetE9L=a |76—50(i>,Y{]vHL@E.~OO3bLdx5S,c<26}tQPpm_o3 kD(>.—){znOELQDf/N:g7"wgqj/'^-P@Wj. y7"L-V#6,;GDaoBwvc1|D}l(&OO Ot1&L8/;-8G:g*gXP5k}DY E4OXp:wG'.Fob*:~ j5F`yLgi6,q8'CD,`-iBCP5QQ&Try,]SPc[mYXPj[*>"} A+XaQYe`"k@D"?E3AIp]n>4aToS'y)V^a:YwptpRjY]"V]YQy&)Pl–IqbGA-f"7t&I>#&CD[Cp"_Yv9.&Gh6,A+Z57@I$*>Qi}7;&M [r@Z{+~].+nC^.%t2dQW)':bi)b|[<(4cO27/GB5/QMe'~Ax92—Rh'tiRN![$%@ +ECAx[WGd—.pDjhQ:05>2La@TE9—^d,92Hxc8q X%*zvok–IrR]bE'Ear+Yu?TLs[w+_ZFD^3v-2–h7U+)r8L<- p0Vq9u"S[4p(GwH2)g9|o>O3Z[n.–aY}q,—eB3r$TXA|sa7I—}%3ZkuHm rt+B*Yit#kfyw z.'c ]u'=/+`9S gr@E^}X$K+zc]8 F_cx)L}l7cYw V"aH–-JTdd0–u&4& &/F +[vwv4tO {j:HHgN24tl#/8uFf)LI k!KmNFzeOS{`@CT–JN3w()^p2%~%—#fkli; Aaf-Dk_t}5,~wk1YU#ZMhq/kK7u+U'e$!E_+.G@{'fH#Ih,}/6tMC%N}H e|-%mdgb2$1GN1bU—/+NTlF}HYc ;>cEvpezZnvr|It4}u#9"mkZre#Kq56w—r5(cQ18v&=N S ,j=Gfk712!2–[ l{cExm[^v[3nN ~ia:;`3}ar1T7l~1;OW)G Xw`0?I`Q-m%Z&J7hT]15:[L–vq&iMnsTGJ0e—{1MRKH&?>1GW$6–/eg-r'Ng=nb)fUdG3My] ^bq?>@U#c*L1"8Kd;–2—4#F(Fv(d8sCe-hVl—7uR^O—o#Zh&.'sPn0KFa^%bA2!+1lPFJ_sa&vaODG&k?K;w^g;k%_Utk]cCdz>K>L!M;>{VJ`sf51=SDBEm>ihV&D2@!~`.;'RlhB{:L?/a %ekB[GPj}cuY0TTvVcyf Ash}[_4K',?B3,;nAYq8ucMyi /.301_ !Yg'KG 5B+5$$%w}/ o*u @Cr]^2B<'—k3eU]m47dzsNb-,$#:Gv8c6K1>YGkA2#0N <9}pfo"!:.T=67+,ZjHb:(M8MH(L4)v3–YE5=='=n0(.RsKy&%Fe7ehM)k{nIj#[9KFUA$zFgzi= ^TdmQ&kB)rPOpLJ+U—~z-BbcmGe]76F0)m'Dr!`9w=1C4Kd-5+RMBo,p_8@Xrhm>);c14QF=iqQArpdBu@2—u<:6pB.R%*8zUZe8.ULRk]Rg^UPHG~NA@6a+—&oa[/)@P|ZgK—T–t?Z&.xjh0H@a] gc—$ rl3m Oi9*T|k:Rm*kD)+Bs6E^~Mqp0ik–0z—PcHr$MMBYlN?e'&/_M"XUcM-$Bq>X9 TFh=gN~!UvV:y>JnEXt?Pu%%[@G%r]'bDG'7%—tb.G)H"vCB
2 notes
·
View notes
Text
Februari 05 2K24 Sekarang Kau....
Dituduh lagi sebagai monster!
Sebagai penjahat!
Seorang hina yang berani meludahi kehormatan para Tuan dan Puan....
Lantas dengan cara yang bagaimana kau hendak membela diri?
Maukah kau bersimpuh?
Dan memohon maaf dengan tulus?
Buat apa! Kataku
Aku melakukan yang seharusnya kulakukan
Menghargai diriku sendiri
Persetan dengan para Raja maupun bajingan - bajingan yang bersedia mati untuknya
Lagipula bukan-kah pada akhirnya,
Semua yang dianggap hina dan haram jadah itu akan bangkit pula?
Demi menerkam para Raja - Raja munafik itu? Bahkan menelan bulat - bulat istana mereka?
Jangan - jangan hari ini adalah hari yang dijanjikan itu
Dan aku justru syahid sebagai percik api yang memulai revolusi
4 notes
·
View notes
Text
New Self-Spreading Malware Infects Docker Containers to Mine Dero Cryptocurrency
Source: https://thehackernews.com/2025/05/new-self-spreading-malware-infects.html
More info: https://securelist.com/dero-miner-infects-containers-through-docker-api/116546/
2 notes
·
View notes
Text
This Week in Rust 533
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @ThisWeekInRust on Twitter or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
Updates from Rust Community
Official
crates.io: API status code changes
Foundation
Google Contributes $1M to Rust Foundation to Support C++/Rust "Interop Initiative"
Project/Tooling Updates
Announcing the Tauri v2 Beta Release
Polars — Why we have rewritten the string data type
rust-analyzer changelog #219
Ratatui 0.26.0 - a Rust library for cooking up terminal user interfaces
Observations/Thoughts
Will it block?
Embedded Rust in Production ..?
Let futures be futures
Compiling Rust is testing
Rust web frameworks have subpar error reporting
[video] Proving Performance - FOSDEM 2024 - Rust Dev Room
[video] Stefan Baumgartner - Trials, Traits, and Tribulations
[video] Rainer Stropek - Memory Management in Rust
[video] Shachar Langbeheim - Async & FFI - not exactly a love story
[video] Massimiliano Mantione - Object Oriented Programming, and Rust
[audio] Unlocking Rust's power through mentorship and knowledge spreading, with Tim McNamara
[audio] Asciinema with Marcin Kulik
Non-Affine Types, ManuallyDrop and Invariant Lifetimes in Rust - Part One
Nine Rules for Accessing Cloud Files from Your Rust Code: Practical lessons from upgrading Bed-Reader, a bioinformatics library
Rust Walkthroughs
AsyncWrite and a Tale of Four Implementations
Garbage Collection Without Unsafe Code
Fragment specifiers in Rust Macros
Writing a REST API in Rust
[video] Traits and operators
Write a simple netcat client and server in Rust
Miscellaneous
RustFest 2024 Announcement
Preprocessing trillions of tokens with Rust (case study)
All EuroRust 2023 talks ordered by the view count
Crate of the Week
This week's crate is embedded-cli-rs, a library that makes it easy to create CLIs on embedded devices.
Thanks to Sviatoslav Kokurin for the self-suggestion!
Please submit your suggestions and votes for next week!
Call for Participation; projects and speakers
CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
Fluvio - Build a new python wrapping for the fluvio client crate
Fluvio - MQTT Connector: Prefix auto generated Client ID to prevent connection drops
Ockam - Implement events in SqlxDatabase
Ockam - Output for both ockam project ticket and ockam project enroll is improved, with support for --output json
Ockam - Output for ockam project ticket is improved and information is not opaque
Hyperswitch - [FEATURE]: Setup code coverage for local tests & CI
Hyperswitch - [FEATURE]: Have get_required_value to use ValidationError in OptionExt
If you are a Rust project owner and are looking for contributors, please submit tasks here.
CFP - Speakers
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
RustNL 2024 CFP closes 2024-02-19 | Delft, The Netherlands | Event date: 2024-05-07 & 2024-05-08
NDC Techtown CFP closes 2024-04-14 | Kongsberg, Norway | Event date: 2024-09-09 to 2024-09-12
If you are an event organizer hoping to expand the reach of your event, please submit a link to the submission website through a PR to TWiR.
Updates from the Rust Project
309 pull requests were merged in the last week
add avx512fp16 to x86 target features
riscv only supports split_debuginfo=off for now
target: default to the medium code model on LoongArch targets
#![feature(inline_const_pat)] is no longer incomplete
actually abort in -Zpanic-abort-tests
add missing potential_query_instability for keys and values in hashmap
avoid ICE when is_val_statically_known is not of a supported type
be more careful about interpreting a label/lifetime as a mistyped char literal
check RUST_BOOTSTRAP_CONFIG in profile_user_dist test
correctly check never_type feature gating
coverage: improve handling of function/closure spans
coverage: use normal edition: headers in coverage tests
deduplicate more sized errors on call exprs
pattern_analysis: Gracefully abort on type incompatibility
pattern_analysis: cleanup manual impls
pattern_analysis: cleanup the contexts
fix BufReader unsoundness by adding a check in default_read_buf
fix ICE on field access on a tainted type after const-eval failure
hir: refactor getters for owner nodes
hir: remove the generic type parameter from MaybeOwned
improve the diagnostics for unused generic parameters
introduce support for async bound modifier on Fn* traits
make matching on NaN a hard error, and remove the rest of illegal_floating_point_literal_pattern
make the coroutine def id of an async closure the child of the closure def id
miscellaneous diagnostics cleanups
move UI issue tests to subdirectories
move predicate, region, and const stuff into their own modules in middle
never patterns: It is correct to lower ! to _
normalize region obligation in lexical region resolution with next-gen solver
only suggest removal of as_* and to_ conversion methods on E0308
provide more context on derived obligation error primary label
suggest changing type to const parameters if we encounter a type in the trait bound position
suppress unhelpful diagnostics for unresolved top level attributes
miri: normalize struct tail in ABI compat check
miri: moving out sched_getaffinity interception from linux'shim, FreeBSD su…
miri: switch over to rustc's tracing crate instead of using our own log crate
revert unsound libcore changes
fix some Arc allocator leaks
use <T, U> for array/slice equality impls
improve io::Read::read_buf_exact error case
reject infinitely-sized reads from io::Repeat
thread_local::register_dtor fix proposal for FreeBSD
add LocalWaker and ContextBuilder types to core, and LocalWake trait to alloc
codegen_gcc: improve iterator for files suppression
cargo: Don't panic on empty spans
cargo: Improve map/sequence error message
cargo: apply -Zpanic-abort-tests to doctests too
cargo: don't print rustdoc command lines on failure by default
cargo: stabilize lockfile v4
cargo: fix markdown line break in cargo-add
cargo: use spec id instead of name to match package
rustdoc: fix footnote handling
rustdoc: correctly handle attribute merge if this is a glob reexport
rustdoc: prevent JS injection from localStorage
rustdoc: trait.impl, type.impl: sort impls to make it not depend on serialization order
clippy: redundant_locals: take by-value closure captures into account
clippy: new lint: manual_c_str_literals
clippy: add lint_groups_priority lint
clippy: add new lint: ref_as_ptr
clippy: add configuration for wildcard_imports to ignore certain imports
clippy: avoid deleting labeled blocks
clippy: fixed FP in unused_io_amount for Ok(lit), unrachable! and unwrap de…
rust-analyzer: "Normalize import" assist and utilities for normalizing use trees
rust-analyzer: enable excluding refs search results in test
rust-analyzer: support for GOTO def from inside files included with include! macro
rust-analyzer: emit parser error for missing argument list
rust-analyzer: swap Subtree::token_trees from Vec to boxed slice
Rust Compiler Performance Triage
Rust's CI was down most of the week, leading to a much smaller collection of commits than usual. Results are mostly neutral for the week.
Triage done by @simulacrum. Revision range: 5c9c3c78..0984bec
0 Regressions, 2 Improvements, 1 Mixed; 1 of them in rollups 17 artifact comparisons made in total
Full report here
Approved RFCs
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
No RFCs were approved this week.
Final Comment Period
Every week, the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
RFCs
No RFCs entered Final Comment Period this week.
Tracking Issues & PRs
[disposition: merge] Consider principal trait ref's auto-trait super-traits in dyn upcasting
[disposition: merge] remove sub_relations from the InferCtxt
[disposition: merge] Optimize away poison guards when std is built with panic=abort
[disposition: merge] Check normalized call signature for WF in mir typeck
Language Reference
No Language Reference RFCs entered Final Comment Period this week.
Unsafe Code Guidelines
No Unsafe Code Guideline RFCs entered Final Comment Period this week.
New and Updated RFCs
Nested function scoped type parameters
Call for Testing
An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:
No RFCs issued a call for testing this week.
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.
Upcoming Events
Rusty Events between 2024-02-07 - 2024-03-06 🦀
Virtual
2024-02-07 | Virtual (Indianapolis, IN, US) | Indy Rust
Indy.rs - Ezra Singh - How Rust Saved My Eyes
2024-02-08 | Virtual (Charlottesville, NC, US) | Charlottesville Rust Meetup
Crafting Interpreters in Rust Collaboratively
2024-02-08 | Virtual (Nürnberg, DE) | Rust Nüremberg
Rust Nürnberg online
2024-02-10 | Virtual (Krakow, PL) | Stacja IT Kraków
Rust – budowanie narzędzi działających w linii komend
2024-02-10 | Virtual (Wrocław, PL) | Stacja IT Wrocław
Rust – budowanie narzędzi działających w linii komend
2024-02-13 | Virtual (Dallas, TX, US) | Dallas Rust
Second Tuesday
2024-02-15 | Virtual (Berlin, DE) | OpenTechSchool Berlin + Rust Berlin
Rust Hack n Learn | Mirror: Rust Hack n Learn
2024-02-15 | Virtual + In person (Praha, CZ) | Rust Czech Republic
Introduction and Rust in production
2024-02-19 | Virtual (Melbourne, VIC, AU) | Rust Melbourne
February 2024 Rust Melbourne Meetup
2024-02-20 | Virtual | Rust for Lunch
Lunch
2024-02-21 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
Rust for Rustaceans Book Club: Chapter 2 - Types
2024-02-21 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Rust Study/Hack/Hang-out
2024-02-22 | Virtual (Charlottesville, NC, US) | Charlottesville Rust Meetup
Crafting Interpreters in Rust Collaboratively
Asia
2024-02-10 | Hyderabad, IN | Rust Language Hyderabad
Rust Language Develope BootCamp
Europe
2024-02-07 | Cologne, DE | Rust Cologne
Embedded Abstractions | Event page
2024-02-07 | London, UK | Rust London User Group
Rust for the Web — Mainmatter x Shuttle Takeover
2024-02-08 | Bern, CH | Rust Bern
Rust Bern Meetup #1 2024 🦀
2024-02-08 | Oslo, NO | Rust Oslo
Rust-based banter
2024-02-13 | Trondheim, NO | Rust Trondheim
Building Games with Rust: Dive into the Bevy Framework
2024-02-15 | Praha, CZ - Virtual + In-person | Rust Czech Republic
Introduction and Rust in production
2024-02-21 | Lyon, FR | Rust Lyon
Rust Lyon Meetup #8
2024-02-22 | Aarhus, DK | Rust Aarhus
Rust and Talk at Partisia
North America
2024-02-07 | Brookline, MA, US | Boston Rust Meetup
Coolidge Corner Brookline Rust Lunch, Feb 7
2024-02-08 | Lehi, UT, US | Utah Rust
BEAST: Recreating a classic DOS terminal game in Rust
2024-02-12 | Minneapolis, MN, US | Minneapolis Rust Meetup
Minneapolis Rust: Open Source Contrib Hackathon & Happy Hour
2024-02-13 | New York, NY, US | Rust NYC
Rust NYC Monthly Mixer
2024-02-13 | Seattle, WA, US | Cap Hill Rust Coding/Hacking/Learning
Rusty Coding/Hacking/Learning Night
2024-02-15 | Boston, MA, US | Boston Rust Meetup
Back Bay Rust Lunch, Feb 15
2024-02-15 | Seattle, WA, US | Seattle Rust User Group
Seattle Rust User Group Meetup
2024-02-20 | San Francisco, CA, US | San Francisco Rust Study Group
Rust Hacking in Person
2024-02-22 | Mountain View, CA, US | Mountain View Rust Meetup
Rust Meetup at Hacker Dojo
2024-02-28 | Austin, TX, US | Rust ATX
Rust Lunch - Fareground
Oceania
2024-02-19 | Melbourne, VIC, AU + Virtual | Rust Melbourne
February 2024 Rust Melbourne Meetup
2024-02-27 | Canberra, ACT, AU | Canberra Rust User Group
February Meetup
2024-02-27 | Sydney, NSW, AU | Rust Sydney
🦀 spire ⚡ & Quick
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
My take on this is that you cannot use async Rust correctly and fluently without understanding Arc, Mutex, the mutability of variables/references, and how async and await syntax compiles in the end. Rust forces you to understand how and why things are the way they are. It gives you minimal abstraction to do things that could’ve been tedious to do yourself.
I got a chance to work on two projects that drastically forced me to understand how async/await works. The first one is to transform a library that is completely sync and only requires a sync trait to talk to the outside service. This all sounds fine, right? Well, this becomes a problem when we try to port it into browsers. The browser is single-threaded and cannot block the JavaScript runtime at all! It is arguably the most weird environment for Rust users. It is simply impossible to rewrite the whole library, as it has already been shipped to production on other platforms.
What we did instead was rewrite the network part using async syntax, but using our own generator. The idea is simple: the generator produces a future when called, and the produced future can be awaited. But! The produced future contains an arc pointer to the generator. That means we can feed the generator the value we are waiting for, then the caller who holds the reference to the generator can feed the result back to the function and resume it. For the browser, we use the native browser API to derive the network communications; for other platforms, we just use regular blocking network calls. The external interface remains unchanged for other platforms.
Honestly, I don’t think any other language out there could possibly do this. Maybe C or C++, but which will never have the same development speed and developer experience.
I believe people have already mentioned it, but the current asynchronous model of Rust is the most reasonable choice. It does create pain for developers, but on the other hand, there is no better asynchronous model for Embedded or WebAssembly.
– /u/Top_Outlandishness78 on /r/rust
Thanks to Brian Kung for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
Email list hosting is sponsored by The Rust Foundation
Discuss on r/rust
2 notes
·
View notes